The present invention is in the field of Basic Input Output System (BIOS) systems and has particular application to methods and apparatus including software for accessing a mass storage device to execute an application by utilizing unused flash or other non-volatile memory within a computer BIOS system chip.
The present invention relates to system Basic Input Output Systems (BIOS). It is well-known in the computer arts that a BIOS program is provided, particularly for personal computers, to manage the intricate and critical operations of testing and initializing system hardware and, in general, preparing the computer and its connected peripherals for operation. Part of this procedure is widely known as a Power-On Self Test (POST) sequence. Beyond the POST procedure, the BIOS directs Boot operations, typically from a designated Boot device, such as a connected hard disk drive, and after Boot BIOS routines are accessed as needed to support operations such as communication between the connected digital devices that make up the computer system.
In early stages of PC development a relatively small, non-volatile, read-only memory (ROM) chip was more than adequate for system BIOS, and the relatively slow access to ROM was also adequate. As PC technology has developed to much faster CPUs and a wide range of ever more powerful and sophisticated peripheral devices, BIOS development has been forced to keep pace. BIOS routines have become much larger than early systems, and high operating speed has become necessary.
As a result of system development it is now common in state-of-the-art systems for BIOS to be compressed in a ROM chip, and for BIOS routines to be shadowed to system random-access memory (RAM) where the routines may be accessed and executed and much higher speeds than is possible running directly from ROM.
At the same time that BIOS routines have been enhanced and further developed for more sophisticated and powerful PCs, there has been parallel development in ROM chips. One such development is known as Flash ROM. Flash ROM is non-volatile IC memory that may be erased, either as a whole or in specific blocks, and overwritten with new memory values. BIOS is now provided in high-end PCs in these Flash ROM chips, providing new advantages, such as an ability to address system bugs in the field. BIOS can hence be xe2x80x9cre-flashedxe2x80x9d in the field to provide a new version, for example, such as by downloading a new version from the Internet, and re-flashing the existing BIOS ROM with the new version.
In a related development, flash ROM chips have been made larger and faster, and for various reasons related to economy of scale it has become uneconomic to make small flash ROM chips. At the time of the present patent application flash ROM chips are readily available in sizes of, for example, 1 mega-bit, (1 Mb), and 2 and 4 Mb and larger. These sizes relate to the more common byte-related memory capacity designation by a factor of eight. A four Mb Flash ROM the has a code capacity of 512 kilobyte (KB).
As a consequence of the availability of relatively inexpensive, large flash ROM chips, and the fact that compressed code is now common in BIOS, it is quite common at the time of the present application for system BIOS in Flash ROM to occupy considerably less than the total memory capacity of the chip. At the same time, because rapid development of new peripherals and expanded functionality of others, such as video displays, which are now high resolution and in color, there is a need for initialization of many devices at system start up, and initialization of all the devices cannot be included in the system BIOS all of the devices. Many such devices (VGA adapters, for example) therefore have BIOS functions provided by the manufacturers of the devices.
With the use of larger ROM chips, and particularly with Flash ROM, it is now possible for original-equipment manufacturers (OEMs), Value-Added Resellers (VARs) and the like to use extra memory capacity in a ROM chip storing BIOS functions for providing BIOS functions for peripherals, and also other routines, such as, for example, pre-boot security routines. With the present state of the art, however, it is necessary that a third party cooperate closely with a BIOS provider to add to and enhance the functionality of a BIOS chip. The partitioning, addressing, size, and other characteristics of the chip have to be known by the third party, and the structure and storage estate of the resident code has to be known as well.
A system known to the inventor allows a third party to flash in BIOS instructions for plug-n-play devices and certain utility applications so that they may be executed before or during the booting of the OS. Such a convention described as a virtual ROM (V-ROM) BIOS may be altered via a third party without requiring that the editing party have intimate knowledge of the architecture or data mapping of the chip. This system is described in the parent application referenced above.
It is desirable, in addition to flashing in certain added boot instruction to pre-boot operation, to be able to initiate and execute certain applications that would normally and conventionally depend upon a full loading of the OS before access is possible.
What is clearly needed is a BIOS system that has a program installed for finding, initializing, and executing certain applications from a hard drive or other mass storage device (MSD) before an operating system has loaded. Such a program would allow such as multimedia applications to play in a pre-planned manner providing advertisement or other viewer-targeted information before the operating system is loaded.
In a preferred embodiment of the present invention a basic input-output system (BIOS) is provided, comprising a BIOS code portion for initializing a computer system and loading an operating System (OS); and a preboot application manager (PAM) portion. The PAM portion is called and executed prior to loading the OS, and causes one or more applications and associated presentations residing on a mass storage device to be executed before OS loading is initiated. The presentations may be video clips comprising advertisements.
In another aspect of the invention a basic input-output system (BIOS) is provided, comprising a conventional BIOS code portion for initializing a computer system and loading an operating System (OS); and a preboot application manager (PAM) portion, including a programmable file system structure (FSS). The PAM portion is called and executed prior to loading the OS, checks for a valid mass storage device (MSD) listed in the FSS, analyzes a connected MSD, and upon finding a match launches necessary code to execute an associated application, executes the application, plays at least one presentation with the application, and then returns control to the BIOS code portion for booting the OS, and wherein the PAM portion upon failing to find a find a match, sets a flag indicating a match was not found, then initiates booting the OS.
In this embodiment, each time the OS is booted, the BIOS loads an FSS driver, checks for the flag being set, and if the flag is set analyzes a connected MSD, loads new parameters to the FSS for the next boot operation, and then continues to load the OS. If the BIOS determines the flag is not set, the BIOS deactivates the FSS driver and continues to load the OS. The parameters loaded to the FSS may cause the PAM to rotate among a plurality of presentations and associated applications with subsequent boot operations.
In another aspect of the invention a method for playing presentations on a computer before booting an operating system is provided, comprising steps of (a) including a preboot application manager (PAM) software in a BIOS directing computer initialization and operating system (OS) boot; (b) calling and executing the PAM upon startup prior to OS boot; (c) checking a file system structure (FSS) in the BIOS by the PAM for pointers to an application and a presentation on a mass storage device (MSD); (d) upon finding a MSD with an application and presentation according to the FSS, loading and executing the application and playing the presentation; and (e) proceeding to OS boot after playing the presentation. In this method the presentations may be video clips comprising advertisements.
In another aspect a method for playing presentations on a computer before booting an operating system is provided, comprising steps of (a) including a preboot application manager (PAM) software in a BIOS directing computer initialization and operating system (OS) boot; (b) calling and executing the PAM upon startup prior to OS boot; (c) checking a file system structure (FSS) in the BIOS by the PAM for pointers to an application and a presentation on a mass storage device (MSD); (d) upon finding a MSD with an application and presentation according to the FSS, loading and executing the application and playing the presentation; and (e) upon failing to find a MSD with an application and presentation according to the FSS, sets a flag indicating a match was not found, then initiates booting the OS.
In this method there may be a further step wherein, each time the OS is booted, the BIOS loads an FSS driver, checks for the flag being set, and if the flag is set analyzes a connected MSD, loads new parameters to the FSS for the next boot operation, and then continues to load the OS. If the BIOS determines the flag is not set, the BIOS deactivates the FSS driver and continues to load the OS. The parameters loaded to the FSS may cause the PAM to rotate among a plurality of associated presentations and associated applications with subsequent boot operations.
The invention in various embodiments for the first time provides a system wherein video clips such as advertisements may be played on a computer during initialization and before booting the operating system.